import request from '@/utils/request'
import requestImg from '@/utils/requestImg'
const baseUrl = '/cz-rentbox/api/v1/containers' //租箱服务--我的集装箱接口
// 自有集装箱添加额外费用
export const addContainerOtherFee = (id:any,data:any) =>{
  return request({
    url: baseUrl+'/'+ id +'/addContainerOtherFee',
    method: 'PUT',
    data: data
  })
}
export const statusCount = (data:any) =>{
  return request({
    url: baseUrl+'/statusCount',
    method: 'POST',
    data: data
  })
}
// 集装箱上传附件 updateContainerFile
export const updateContainerFile = (id:Number,data:any) =>{
  return request({
    url: baseUrl+`/${id}/updateContainerFile`,
    method: 'PUT',
    data: data
  })
}
// ### 集装箱轨迹:修改备注
export const updateContainerTrackFile = (id:Number,data:any) =>{
  return request({
    url: baseUrl+`/${id}/updateContainerTrackFile`,
    method: 'PUT',
    data: data
  })
}
// ### 集装箱轨迹:修改备注

export const updateTrackRemark = (id:Number,data:any) =>{
  return request({
    url: baseUrl+`/${id}/updateTrackRemark`,
    method: 'PUT',
    data: data
  })
}


// ### 集装箱轨迹:修改进场日期或者离场日期
export const updateTrackInOrOutDate = (id:Number,data:any) =>{
  return request({
    url: baseUrl+`/${id}/updateTrackInOrOutDate`,
    method: 'PUT',
    data: data
  })
}

// 买入集装箱
export const buyContainer = (data:any) =>{
  return request({
    url: baseUrl+'/buyContainer',
    method: 'PUT',
    data: data
  })
}

// 卖出集装箱
export const sellContainer = (data:any) =>{
    return request({
      url: baseUrl+'/sellContainer',
      method: 'PUT',
      data: data
    })
}

// ### 集装箱:结束代管
// # 输入参数:
//     # containerId:集装箱Id
//     # containerNo:集装箱号
//     # outDate:离场日期
//     # receivableLiftingFee:应收吊装费价格
//     # receivableLiftingFeeCurrency:应收吊装费币种
//     # receivableStorageFeePrice:应收堆存费单价
//     # receivableStorageFeePriceCurrency:应收堆存费单价币种
//     # otherFeeList:额外费用信息List
//     # [{
//     #   feeCurrency:费用币种
//     #   feeCode:费用代码 5-修箱费 10-提箱费  15-翻箱费  20-其他费用
//     #   feeName:费用名称
//     #   feeAmount:费用金额
//     #   feeDirection:结算流向(应收:1 应付:-1)
//     #   feeFlag:结算公司标识:5-客户  10-堆场  15-第三方
//     #   feeCompanyId:结算公司Id
//     #   feeCompanyName:结算公司名称
//     # }]
//     # remark:备注
// ###

export const toEscrowEnd = (data:any) =>{
  return request({
    url: baseUrl+'/toEscrowEnd',
    method: 'PUT',
    data: data
  //   {
  //     "containerIds":[1,2,3]
  // }
  
  })
}

//### 集装箱:转代管
export const toEscrowBox = (data:any) =>{
  return request({
    url: baseUrl+'/toEscrowBox',
    method: 'PUT',
    data: data
  //   {
  //     "containerIds":[1,2,3]
  // }
  
  })
}


// 集装箱:导出Excel

export const exportContainer = (data:any)=>{
  return request({
    responseType: 'blob',
    url: baseUrl+'/exportContainer',
    method: 'POST',
    data: data
    // [{
    //   "orderType":5,
    //   "id":12345
    // }]
  })
}

// ### 集装箱:批量提箱
// ### 输入参数:
//     # orderType:业务类型(5-租箱 10-回调 15-出售)
//     # containerId:集装箱Id
//     # containerNo:集装箱号
//     # businessNo:业务编号
//     #
//     # 出租箱|回调箱传以下参数
//     # boxUsagePeriod:箱使期
//     # overdueFeeDay:超期一天的费用信息 /箱/天
//     # overdueFeeCurrency:超期一天的费用币种
//     # outDate:离场日期
//     # returnCityId:还箱城市Id
//     # returnCityName:还箱国家名称
//     # returnCountryId:还箱国家Id
//     # returnCountryName:还箱国家名称
//     #
//     # 出租箱独有字段
//     # rentInPrice:租入价格
//     # rentInPriceCurrency:租入币种
//     # rentOutPrice:租出价格
//     # rentOutPriceCurrency:租出币种
//     #
//     # 回调箱独有字段
//     # boxLabelPrice:箱贴费价格
//     # boxLabelPriceCurrency:箱贴费币种
//     #
//     # 出售箱独有字段
//     # buyDate:买入日期
//     # buyInPrice:买入价格
//     # buyInPriceCurrency:买入币种
//     # sellDate:卖出日期
//     # sellOutPrice:卖出价格
//     # sellOutPriceCurrency:卖出币种
//     #
//     # 公用信息字段
//     # agentName:客户名称
//     # receivableLiftingFee:应收吊装费价格
//     # receivableLiftingFeeCurrency:应收吊装费币种
//     # receivableStorageFeePrice:应收堆存费单价
//     # receivableStorageFeePriceCurrency:应收堆存费单价币种
//     # otherFeeList:额外费用信息List
//     # [{
//     #   feeCurrency:费用币种
//     #   feeCode:费用代码 5-修箱费 10-提箱费  15-翻箱费  20-其他费用
//     #   feeName:费用名称
//     #   feeAmount:费用金额
//     #   feeDirection:结算流向(应收:1 应付:-1)
//     #   feeFlag:结算公司标识:5-客户  10-堆场  15-第三方
//     #   feeCompanyId:结算公司Id
//     #   feeCompanyName:结算公司名称
//     # }]
//     # remark:备注
// ###

export const batchCarryBox = (data: any) => {
  return request({
    url: baseUrl+'/batchCarryBox',
    method: 'PUT',
    data: data
    // [{
    //   "orderType":5,
    //   "id":12345
    // }]
  
 })
}

// ### 集装箱:查询集装箱堆存费信息
export const containerYardFees = (data: any) => {
  return request({
    url: baseUrl+'/containerYardFees',
    method: 'POST',
    data: data
  })
}



// import { sell } from '@/api/boxManage/index'

/*查询集装箱分页列表
* @param {String} containerNo 箱号
* @param {number} boxType 集装箱箱型：5 - 40HQ   10 - 40GP  15 - 20HQ   20 - 20GP
* @param {number} boxCondition 集装箱箱况：5-全新   10-次新  15-适货
* @param {array [5]} statusList集装箱状态：5-堆存中、10-提箱中、15-已提、20-未还、25-还箱中 30-已卖
* @param {String} beginInDate  endInDate 入场时间区间 
* @param {String} beginOutDate  endOutDate 出场时间区间 
* @param {number} Id 还箱城市Id
* @param {number} orderId 订单Id
* @param {number} orderNo 订单编号
*/
export const getTable = (data: any) => {
  return request({
    url: baseUrl+'/page',
    method: 'POST',
    data: data
    // data:{
    // "pageNum": 1,
    // "pageSize": 10
    // }
  })
}

export const returnPage = (data: any) => {
  return request({
    url: baseUrl+'/returnPage',
    method: 'POST',
    data: data
    // data:{
    // "pageNum": 1,
    // "pageSize": 10
    // }
  })
}


export const agentSelectPage = (data: any) => {
  return request({
    url: baseUrl+'/agentSelectPage',
    method: 'post',
    data: data
    // data:{
    // "pageNum": 1,
    // "pageSize": 10
    // }
  })
}

/*查询集装箱详情
* @param {number} id 集装箱Id
*/
export const getBoxInfo = (id: any) => {
  return request({
    url: baseUrl+'/'+ id,
    method: 'get', 
  })
}

/*### 新增集装箱
*必填字段: 分为两种在途和在堆场
# 在堆场 
# {
#     "containerNo":"HNKU5118031",  
#     "boxType":5,
#     "boxCondition":5,
#     "totalWeight":"22222"
#     "containerClassify":"5",
#     "boxEastYardId":"4", 
#     "location":"郑州保税物流中心",
#     "inDate": "2024-06-17T10:44:57"
# }

# 在途 containerClassify:集装箱分类(5-租箱 10-回调 15-外调) 不是外调则传值 5-租箱
# {
#     "containerNo":"HNKU5118032",
#     "boxType":5,
#     "containerClassify":"5",
#     "totalWeight":"22222"
#     "boxCondition":5,
#     "boxUsagePeriod":60,
#     "location":"在途",
#     "returnCityId":2,
#     "returnCityName":"青岛",
#     "returnCountryId":1,
#     "returnCountryName":"中国",
#     "outDate": "2024-06-17T10:44:57"
# }
###
*/
export const addBox = (data: any) => {
  return request({
    url: baseUrl,
    method: 'post',
    data: data
  })
}

/*编辑集装箱
* data:{ "id":1802631579804303361, "containerNo":"HNKU5118021", "boxCondition":10 }
*/
export const updateBox = (data: any) => {
  return request({
    url: baseUrl,
    method: 'PUT',
    data: data
  })
}

/*批量删除集装箱
* @param {array [1,2,3]} data 集装箱Id 数组
*/
export const deleteBox = (data: any) => {
  return request({
    url: baseUrl,
    method: 'DELETE',
    data: data
  })
}

/*导入集装箱
* @param {formData} file excel文件
*/
export const uploadBox = (data:any) => {
  return requestImg({
    url: baseUrl+'/upload',
    method: 'POST',
    data: data 
  })
}

/*流转路径 /{containerNo}/trackPage
* @param {number} id 集装箱Id
* @param {number} status 集装箱状态：5-堆存中、10-提箱中、15-已提、20-未还、25-还箱中 30-已卖
*/
export const getTrackPage = (data:any) => {
  return request({
    url: baseUrl+'/'+data.containerNo+'/trackPage',
    method: 'post',
    data:data
  })
}


/*### 外加集装箱:批量还箱
* PUT {{baseUrl}}/containers/returnContainer
*/
export const returnContainer = (data: any) => {
  return request({
    url: baseUrl + '/returnContainer',
    method: 'PUT',
    data: data,
    // data:{
    // "boxEastYardId":123345566,
    // "returnDate":"2024-06-17T10:44:57",
    // "containerIds":[1,2,3]
    // }
  })
}

/*### 卖出集装箱
* POST  {{baseUrl}}/containers/12/sell
*/
export const sell = (boxId: any) => {
  return request({
    url: baseUrl+'/'+boxId + '/sell',
    method: 'POST' 
  })
}

/*集装箱:修改备注 
* @param {String} id 还箱单id
* @param {String} remark 备注
*/
export const updateContainersMark = (data: any) => {
  return request({
    url: baseUrl+'/'+data.id+'/updateRemark',
    method: 'PUT',
    data: data
    // data:{
    // "remark":"备注"
    // }
  })
}

//  ContainerInfoBean 字段说明
//   private Long id;

//      /**
//       * 集装箱公司Id
//       */
//      private Long companyId;

//      /**
//       * 集装箱公司名称
//       */
//      private String companyName;

//      /**
//       * 原始集装箱箱号
//       */
//      private String oidContainerNo;

//      /**
//       * 集装箱箱号
//       */
//      private String containerNo;

//      /**
//       * 集装箱箱型：5 - 40HQ   10 - 40GP  15 - 20HQ   20 - 20GP
//       */
//      private Integer boxType;

//      /**
//       * 集装箱箱况：5-全新   10-次新  15-适货
//       */
//      private Integer boxCondition;
    
//      /**
//       * 集装箱公司我的堆场Id
//       */
//      private Long boxEastYardId;

//      /**
//       * 堆场Id
//       */
//      private Long yardId;

//      /**
//       * 堆场名称
//       */
//      private String yardName;

//      /**
//       * 集装箱状态：5-堆存中、10-提箱中、15-已提、20-未还、25-还箱中 30-已卖
//       */
//      private Integer status;

//      /**
//       * 实时位置：在途、集装箱在堆场存放则是堆场名称
//       */
//      private String location;

//      /**
//       * 入场时间
//       */
//      private LocalDateTime inDate;

//      /**
//       * 堆存天数
//       */
//      private Integer inDays;

//      /**
//       * 出场时间
//       */
//      private LocalDateTime outDate;

//      /**
//       * 离场天数
//       */
//      private Integer outDays;

//      /**
//       * 租赁集装箱货代公司Id
//       */
//      private Long agentId;

//      /**
//       * 租赁集装箱货代公司名称
//       */
//      private String agentName;

//      /**
//       * 还箱城市Id
//       */
//      private Long returnCityId;

//      /**
//       * 还箱城市名称
//       */
//      private String returnCityName;

//      /**
//       * 还箱国家Id
//       */
//      private Long returnCountryId;

//      /**
//       * 还箱国家名称
//       */
//      private String returnCountryName;

//      /**
//       * 订单Id
//       */
//      private Long orderId;

//      /**
//       * 订单编号
//       */
//      private String orderNo;
// 